//思路一：分别统计左0的个数和右1的个数
void Is_Max(int *p, int n){
    if(*p < n)
        *p = n;  
}

int maxScore(char* s) {
    int len = strlen(s);
    int i = 1, max = 0;

    while(i < len){ 
        int left = 0, right = 0;

        for(int j = 0; j < i; j++){
            if(s[j] == '0')
                left++;
        }
        for(int k = i; k < len; k++){
            if(s[k] == '1')
                right++;
        }

        i++;
        Is_Max(&max,left + right);
    }
    return max;
}

//思路二：先统计1的个数，在循环算0的个数，具体见代码
void Is_Max(int *p, int n){
    if(*p < n)
        *p = n;  
}
int maxScore(char* s) {
    int score = 0, max = 0;
    for(int i = 0; s[i] != '\0'; i++){
        score += s[i] - '0';
    }
    for(int i = 0; s[i + 1] != '\0'; i++){
        score += (s[i] == '0' ? 1 : -1);
        Is_Max(&max,score);
    }
    return max;
}
/*给你一个由若干 0 和 1 组成的字符串 s ，请你计算并返回将该字符串分割成两个 非空 子字符串（即 左 子字符串和 右 子字符串）所能获得的最大得分。

「分割字符串的得分」为 左 子字符串中 0 的数量加上 右 子字符串中 1 的数量。*/